home *** CD-ROM | disk | FTP | other *** search
- /*
- IC Globals.c
-
- Defines globals used by the application.
-
- */
-
- #include <Errors.h>
- #include <Processes.h>
- #include <Components.h>
- #include <GestaltEqu.h>
- #include <Resources.h>
- #include <ToolUtils.h>
- #include <Dialogs.h>
-
- #include "IC Globals.h"
- #include "IC Misc Subs.h"
-
- Boolean System7=false;
- Boolean Has_AppleEvents=false;
- Boolean Has_FindFolder=false;
- Boolean Has_AliasMgr=false;
- Boolean Has_NewStdFile=false;
- Boolean Has_HelpMgr=false;
- Boolean Has_ColorQD=false;
- Boolean Has_Components=false;
-
- short app_resfile;
- FSSpec app_fs;
- Boolean in_foreground=true;
- Boolean quitnow=false;
- VersRec app_version;
-
- #define GestaltAttr(feature,attr) BitTst((feature),(31-(attr)))
-
- Boolean CheckGestalt(OSType selector,short attr){
- OSErr err;
- long gv;
-
- err=Gestalt(selector,&gv);
-
- if (err!=noErr)
- return false;
-
- return GestaltAttr(&gv,attr);
- }
-
- void InitGlobals(void){
- OSErr err;
- long gv;
- FCBPBRec pb;
- SysEnvRec sysenv;
- VersRecHndl versh;
-
- app_resfile=CurResFile();
-
- pb.ioNamePtr=app_fs.name;
- pb.ioVRefNum=0;
- pb.ioRefNum=app_resfile;
- pb.ioFCBIndx=0;
-
- err=PBGetFCBInfoSync(&pb);
-
- app_fs.vRefNum=pb.ioFCBVRefNum;
- app_fs.parID=pb.ioFCBParID;
-
- if ((SysEnvirons(1,&sysenv)==noErr)&&(sysenv.hasColorQD))
- Has_ColorQD=true;
-
- if ((Gestalt(gestaltSystemVersion,&gv)==noErr)&&(gv>=0x0700))
- System7=true;
-
- Has_AppleEvents=CheckGestalt(gestaltAppleEventsAttr,gestaltAppleEventsPresent);
- Has_FindFolder=CheckGestalt(gestaltFindFolderAttr,gestaltFindFolderPresent);
- Has_NewStdFile=CheckGestalt(gestaltStandardFileAttr,gestaltStandardFile58);
- Has_HelpMgr=CheckGestalt(gestaltHelpMgrAttr,gestaltHelpMgrPresent);
- Has_AliasMgr=CheckGestalt(gestaltAliasMgrAttr,gestaltAliasMgrPresent);
-
- if ((Gestalt(gestaltComponentMgr,&gv)==noErr)&&(gv>0))
- Has_Components=true;
-
- versh=(VersRecHndl)Get1Resource('vers',1);
- if (versh!=(VersRecHndl)0){
- DetachResource((Handle)versh);
- HLock((Handle)versh);
- BlockMoveData((Ptr)*versh,(Ptr)&(app_version),sizeof(VersRec));
- HUnlock((Handle)versh);
- DisposeHandle((Handle)versh);
- } else {
- long* lp=(long*)&(app_version.numericVersion);
-
- *lp=0L;
- // app_version.numericVersion=0L;
- app_version.countryCode=0;
- app_version.shortVersion[0]=0;
- }
- }
-
- Boolean InForeground(void){
- long gv;
- ProcessSerialNumber ourpsn,frontpsn;
- Boolean front;
-
- if (CheckGestalt(gestaltOSAttr,gestaltLaunchControl)){
- if ((GetCurrentProcess(&ourpsn)==noErr)&&(GetFrontProcess(&frontpsn)==noErr)){
- if (SameProcess(&ourpsn,&frontpsn,&front)==noErr)
- in_foreground=front;
- }
- }
-
- return in_foreground;
- }
-
- void DisplayError(ICAction action,OSErr err){
- Str255 tmp,tmp2;
-
- if ((err!=noErr)&&(err!=userCanceledErr)){
- InitCursor();
- GetIndString(tmp,131,action+1);
- NumToString(err,tmp2);
- ParamText(tmp,tmp2,"\p","\p");
- StopAlert(140,(ModalFilterUPP)0);
- }
- }
-